
# 面向对象的多态
"""
1. 概念 ：一个对象具有多种形态，适应需求带来的变化 。
2. 说明 ：
    (1). 必须要有继承关系
    (2). 子类中的方法复写了父类中的方法 ，

3. 开闭原则：
    (1) . 对调用处进行关闭，关闭修改的需求
    (2). 对实现着进行开放 ，可以支持修改 ，
"""

class Test:

    # 实现搜索功能
    def search(self):
        print("需要搜索的内容")


class Bugs(Test):

    def search(self,title=None):
        print(title)
        return [{'bug_id': 1, 'bug_title': '学生列表页使用学生名称进行搜索 结果不正确', 'bug_project': 'tpshop', 'version': 1.0}]


class Cases(Test):

    def search(self,case_id=None):
        return [{'case_id': 1, 'case_title': '学生列表页使用学', 'bug_project': 'tpshop', 'version': 1.0}]


# 新增一个需求 ：开放一个测试报告的功能
class Report(Test):

    def search(self):
        return  [{'report_id': 1, 'report_title': '学生列表页使用学', 'bug_project': 'tpshop', 'version': 1.0}]


# 实现一个函数 ：调用者
def search_data(test):
    result = test.search()
    return result


# 查询bug数据
print(search_data(Bugs()))

# 查询测试用例数据
print(search_data(Cases()))

# 查询测试报告数据
print(search_data(Report()))